<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //1. 先声明，再使用。
        // let a= 123;
        // console.log(a);
        // var a=123;

        // 2. 不允许重复声明
        // var a= 12;
        // var a =123;
        // let a= 12;
        // let a = 'ok'
        // console.log(a);

        // 3. let的块级作用域 代替了自执行函数
        // (function(){
        //     var a=12;
        // })()

        // {
        //     let a = 12;
        // }
        
        // 4.{}内 不同的声明方式，决定了作用域范围
        // {
        //     var a = 12;
        //     let b = 5;
        // }
        // console.log(a);

        // 5. 不影响作用域链
        // function fn(){
        //     var a = 123;
        //     function fn2(){
        //         console.log(a);
        //     }
        //     fn2();
        // }   
        // fn()

        // {
        //     let a = 123;
        //     {
        //         console.log(a);
        //     }
        // }

        // 6. let声明的值不存在window对象上。
        // var a =123;
        // console.log(window);
        // let a  = 456;
        // console.log(window);

    </script>
</body>
</html>